@use '../mdc-core/core-theme';
@use '../mdc-autocomplete/autocomplete-theme';
@use '../mdc-button/button-theme';
@use '../mdc-card/card-theme';
@use '../mdc-checkbox/checkbox-theme';
@use '../mdc-chips/chips-theme';
@use '../mdc-dialog/dialog-theme';
@use '../mdc-list/list-theme';
@use '../mdc-menu/menu-theme';
@use '../mdc-radio/radio-theme';
@use '../mdc-select/select-theme';
@use '../mdc-slide-toggle/slide-toggle-theme';
@use '../mdc-snack-bar/snack-bar-theme';
@use '../mdc-tabs/tabs-theme';
@use '../mdc-table/table-theme';
@use '../mdc-tooltip/tooltip-theme';
@use '../mdc-paginator/paginator-theme';
@use '../mdc-progress-bar/progress-bar-theme';
@use '../mdc-progress-spinner/progress-spinner-theme';
@use '../mdc-input/input-theme';
@use '../mdc-form-field/form-field-theme';
@use '../../material/core/core';
@use '../../material/core/theming/theming';

@mixin all-mdc-component-themes($theme-or-color-config) {
  $dedupe-key: 'angular-material-mdc-theme';
  @include theming.private-check-duplicate-theme-styles($theme-or-color-config, $dedupe-key) {
    @include core-theme.theme($theme-or-color-config);
    @include autocomplete-theme.theme($theme-or-color-config);
    @include button-theme.theme($theme-or-color-config);
    @include dialog-theme.theme($theme-or-color-config);
    @include button-theme.fab-theme($theme-or-color-config);
    @include button-theme.icon-button-theme($theme-or-color-config);
    @include card-theme.theme($theme-or-color-config);
    @include checkbox-theme.theme($theme-or-color-config);
    @include chips-theme.theme($theme-or-color-config);
    @include list-theme.theme($theme-or-color-config);
    @include menu-theme.theme($theme-or-color-config);
    @include paginator-theme.theme($theme-or-color-config);
    @include progress-bar-theme.theme($theme-or-color-config);
    @include progress-spinner-theme.theme($theme-or-color-config);
    @include radio-theme.theme($theme-or-color-config);
    @include select-theme.theme($theme-or-color-config);
    @include slide-toggle-theme.theme($theme-or-color-config);
    @include snack-bar-theme.theme($theme-or-color-config);
    @include table-theme.theme($theme-or-color-config);
    @include form-field-theme.theme($theme-or-color-config);
    @include input-theme.theme($theme-or-color-config);
    @include tabs-theme.theme($theme-or-color-config);
    @include tooltip-theme.theme($theme-or-color-config);
  }
}

// @deprecated Use `all-mdc-component-themes`.
@mixin angular-material-mdc-theme($theme-or-color-config) {
  @include all-mdc-component-themes($theme-or-color-config);
}
